<?php namespace app\admin\controller;

use houdunwang\request\Request;
use system\model\Category as CategoryModel;
class Category extends Common {
	public function __construct()
	{
//		调用common里面的方法进行中间件的调用
		$this->auth();
	}
	//动作
	//首页
    public function index( CategoryModel $category){
        //此处书写代码...
		$cateData=$category->getAllCate();
//		p($cateData);die();
		return view('',compact('cateData'));
    }

    //添加函数
	//编辑函数
    public function post(CategoryModel $category){
		//接受参数(在数据库中搜索：请求管理)
		$cate_id = Request::get('cate_id',0,'intval');
    	if(IS_POST){
    		//有参数，就你行编辑函数
    		if($cate_id){
    			//1.进行自动验证(模型中自动进行)
				//2.进行自动完成（在模型中进行）
				//3.进行数据的更新(因为也是post的传递的数据所以都是用下面的语句)，可以踢到外面去。
				//3.1-通过id,找到下标的一条数据，将炸一条数据进行更新
				$category=CategoryModel::find($cate_id);
//				$category->save( Request::post());
			}

			//-------------------------------进行添加函数--------------------------

				//1.先进行自动验证
				//2.添加数据到数据库
//			p($_POST);die();
				//到手册去搜索请求管理
//			获得所有 $_POST 数据
//            Request::post();
				$category->save( Request::post());
				//3.进行自动验证（有不同的字段类型）(在模型中进行写)
				//4.进行成功提示
				message('操作成功','index');

		}

		//处理旧数据(if 里面的是编辑的功能)else(没有传参的是添加的函数)
		if($cate_id){
    		//获得数据表中的下标的一条数据
//			$cateData=$category->getAllCate();
			//获得下标旧数据（到手册去搜索：find：模型动作）
			$oldData=CategoryModel::find($cate_id);
			View::with( 'oldData' , $oldData );
			//写到这的时候是前台的所属栏目那不能出来，并没有数据传到模板中去？因为还低要有$cateData，否则并没有进行else，这样是诶有数据可以创滴进去的。
//			$cateData=$category->getAllCate();
			//但是考虑到自己所属分类数据，不能选择自己+自己所有子集，所以应该进行排除
			$cateData=$category->getSonCateData($cate_id);
		}else{
			//添加栏目
			//获取栏目所有数据，数据要放在添加页面中所属栏目
			$cateData = $category->getAllCate();
//			p($cateData);
		}
//		p($cateData);
		View::with( 'cateData' , $cateData );
//		p($cateData);
		return view();
	}

	public function del(CategoryModel $category)
	{
		$cate_id = Request::get('cate_id');
		//执行删除
		if($category->del($cate_id)){
			return $this->setRedirect('index')->success('处理成功');
		}else{
			//$this->>error()，控制器error,所以要继承houdunwang\route\Controller;担又要继承common，所以要将common去继承controller；
			//$category->getError()  调用模型中getError方法，来获取错误信息
			return $this->error($category->getError());
		}

	}







}
